home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-06 / ipxstuff.zip / IPXFTX.C < prev    next >
C/C++ Source or Header  |  1992-10-14  |  5KB  |  142 lines

  1. /*******************************************************************/
  2. /*******************************************************************/
  3. /*                 I P X / S P X   R O U T I N E S                 */
  4. /*******************************************************************/
  5. /*******************************************************************/
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <alloc.h>
  10. #include <mem.h>
  11.  
  12. #include "rkipx.h"
  13.  
  14. /*******************************************************************/
  15. /*******************************************************************/
  16.  
  17. /* function prototypes */
  18.  
  19. short main( short argc, char *argv[] );
  20. void ShowInstructions( void );
  21.  
  22. /*******************************************************************/
  23. /*******************************************************************/
  24. /* main program test code */
  25. /*******************************************************************/
  26. /*******************************************************************/
  27.  
  28. short main( short argc, char *argv[] )
  29. {
  30.  
  31. unsigned rc;
  32. NETADDR  netaddr;
  33. long     len;
  34. BYTE     *TxBfr;
  35.  
  36. if ( argc < (6+1) ) // mode, file, txsock, dnet, dnode, dsock, bufsize
  37.    {
  38.    ShowInstructions();
  39.    return( -1 );
  40.    }
  41.  
  42. if ( !(xatoxb( netaddr.INA.Network, argv[4] )) )
  43.    {
  44.    printf( "Bad Network Addr: %s\n", argv[4] );
  45.    return( -1 );
  46.    }
  47.  
  48. if ( !(xatoxb( netaddr.INA.Node, argv[5] )) )
  49.    {
  50.    printf( "Bad Node Addr: %s\n", argv[5] );
  51.    return( -1 );
  52.    }
  53.  
  54. if ( !(xatoxb( netaddr.Socket, argv[6] )) )
  55.    {
  56.    printf( "Bad Socket Addr: %s\n", argv[6] );
  57.    return( -1 );
  58.    }
  59.  
  60. /* -------------- */
  61. /* Sending a file */
  62. /* -------------- */
  63. if ( toupper( argv[1][0] ) == 'F' )
  64.    {
  65.    printf( "\nATTEMPTING FILE SEND\n" );
  66.    len = 0;
  67.    rc = IPXSendRT( &len, argv[2], argv[3], &netaddr, NULL );
  68.    if ( rc != GOOD_IPX_RETURN )
  69.       {
  70.       printf( "\n" );
  71.       printf( "FUNCTION ERROR: %02X\n", rc );
  72.       printf( "  IPXAPI ERROR: %02X\n", IPXerrno );
  73.       return( -1 );
  74.       }
  75.    printf( "\nSUCCESSFUL FILE SEND\n" );
  76.    }
  77.  
  78.  
  79. /* ---------------- */
  80. /* Sending a buffer */
  81. /* ---------------- */
  82.  
  83. if ( toupper( argv[1][0] ) == 'B' && argc == 8 )
  84.    {
  85.    printf( "\nATTEMPTING BUFFER SEND\n" );
  86.    len = atol( argv[7] );
  87.    TxBfr = farcalloc( 1, len );
  88.    if ( !TxBfr )
  89.       {
  90.       printf( "MEMORY ALLOCATION PROBLEM" );
  91.       return( -1 );
  92.       }
  93.   memset( TxBfr, '!', len );
  94.  
  95.    rc = IPXSendRT( &len, TxBfr, argv[3], &netaddr, NULL );
  96.    if ( rc != GOOD_IPX_RETURN )
  97.       {
  98.       printf( "\n" );
  99.       printf( "FUNCTION ERROR: %02X\n", rc );
  100.       printf( "  IPXAPI ERROR: %02X\n", IPXerrno );
  101.       farfree( TxBfr );
  102.       return( -1 );
  103.       }
  104.    printf( "\nSUCCESSFUL BUFFER SEND\n" );
  105.    farfree( TxBfr );
  106.    }
  107.  
  108. return( 0 );
  109. }
  110.  
  111. /*******************************************************************/
  112. /*******************************************************************/
  113. void ShowInstructions( void )
  114. {
  115. printf( "\n\n\n" );
  116. printf( "╔═════════════════════════════════════════════════════╗\n" );
  117. printf( "║ IPX File Transfer Utility version 1.2  RK  6 Jun 92 ║\n" );
  118. printf( "║   (c) 1992 by R. Kvinnesland                        ║\n" );
  119. printf( "║                                                     ║\n" );
  120. printf( "║ USE:  IPXFTX p1 p2 p3 p4 p5 p6 p7                   ║\n" );
  121. printf( "║       where p1 = 'B'(uffer) or 'F'(ile)             ║\n" );
  122. printf( "║             p2 = name of file                       ║\n" );
  123. printf( "║             p3 = source socket (4 hex digits)       ║\n" );
  124. printf( "║             p4 = dest network address (8 hex)       ║\n" );
  125. printf( "║             p5 = dest node address (12 hex)         ║\n" );
  126. printf( "║             p6 = dest socket address (4 hex)        ║\n" );
  127. printf( "║             p7 = size of buffer                     ║\n" );
  128. printf( "║                                                     ║\n" );
  129. printf( "║ EXAMPLES:                                           ║\n" );
  130. printf( "║                                                     ║\n" );
  131. printf( "║ IPXFTX F fi.dat 0420 00000000 12A5C7BB3F02 4010 <CR>║\n" );
  132. printf( "║ IPXFTX B x 0420 00000000 12A5C7BB3F02 4010 2000 <CR>║\n" );
  133. printf( "║                                                     ║\n" );
  134. printf( "╚═════════════════════════════════════════════════════╝\n" );
  135. printf( "\n\n\n\n" );
  136. return;
  137. }
  138.  
  139. /************************************************************************/
  140. /* EOF  EOF  EOF  EOF  EOF  EOF  EOF  EOF  EOF  EOF  EOF  EOF  EOF  EOF */
  141. /************************************************************************/
  142.